HAL USART control functions migration ¶
This section provides information about the HAL USART control functions migration.
USART FIFO Mode ¶
Enable/Disable FIFO Mode ¶
Function renamed in HAL2.
|
HAL1 |
HAL2 |
|---|---|
HAL_USARTEx_EnableFifoMode(USART_HandleTypeDef *husart);
HAL_USARTEx_DisableFifoMode(USART_HandleTypeDef *husart);
|
HAL_USART_EnableFifoMode(const hal_usart_handle_t *husart);
HAL_USART_DisableFifoMode(const hal_usart_handle_t *husart);
|
Set FIFO Threshold ¶
Function renamed in HAL2.
|
HAL1 |
HAL2 |
|---|---|
HAL_USARTEx_SetTxFifoThreshold(USART_HandleTypeDef *husart, uint32_t Threshold);
HAL_USARTEx_SetRxFifoThreshold(USART_HandleTypeDef *husart, uint32_t Threshold);
|
HAL_USART_SetTxFifoThreshold(hal_usart_handle_t *husart, hal_usart_fifo_threshold_t tx_fifo_threshold);
HAL_USART_SetRxFifoThreshold(hal_usart_handle_t *husart, hal_usart_fifo_threshold_t rx_fifo_threshold);
|
Autonomous Mode Configuration ¶
Set Configuration ¶
Function renamed in HAL2.
|
HAL1 |
HAL2 |
|---|---|
HAL_USARTEx_SetConfigAutonomousMode(USART_HandleTypeDef *husart,
const USART_AutonomousModeConfTypeDef *sConfig);
|
// Set the configuration for packet trigger
HAL_USART_AM_SetConfigPacketTrigger(const hal_usart_handle_t *husart,
const hal_usart_am_config_t *p_config)
// Enable packet trigger
HAL_USART_AM_EnablePacketTrigger(const hal_usart_handle_t *husart)
// Optionally enable idle state
HAL_USART_AM_EnableIdle(const hal_usart_handle_t *husart)
|
Get Configuration ¶
Function renamed in HAL2.
|
HAL1 |
HAL2 |
|---|---|
HAL_USARTEx_GetConfigAutonomousMode(const USART_HandleTypeDef *husart,
USART_AutonomousModeConfTypeDef *sConfig);
|
HAL_USART_AM_GetConfigPacketTrigger(const hal_usart_handle_t *husart,
hal_usart_am_config_t *p_config);
|
Clear Configuration ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_USARTEx_ClearConfigAutonomousMode(USART_HandleTypeDef *husart)
|
Function removed in HAL2 (use instead HAL_USART_AM_DisablePacketTrigger()
and HAL_USART_SetConfig() with default settings ).
|
Usage Sequence: Autonomous Mode ¶
|
HAL1 |
HAL2 |
|---|---|
USART_HandleTypeDef husart1;
USART_AutonomousModeConfTypeDef usart_am_config;
// Add init and config for USART instance
// Set configuration for autonomous mode
usart_am_config.AutonomousModeState = USART_AUTONOMOUS_MODE_ENABLE;
usart_am_config.TriggerSelection = USART_GPDMA1_CH0_TCF_TRG;
usart_am_config.TriggerPolarity = USART_TRIG_POLARITY_RISING;
usart_am_config.DataSize = 0;
usart_am_config.IdleFrame = USART_IDLE_FRAME_ENABLE;
HAL_USARTEx_SetConfigAutonomousMode(&husart1, &usart_am_config);
// Optionally get configuration
HAL_USARTEx_GetConfigAutonomousMode(&husart1, &usart_am_config);
// Optionally clear configuration
HAL_USARTEx_ClearConfigAutonomousMode(&husart1);
|
hal_usart_handle_t husart1;
hal_usart_am_config_t usart_am_config;
// Add init and config for USART instance
// Set configuration for packet trigger
usart_am_config.source = HAL_USART_AM_TRIG_GPDMA1_CH0_TC;
usart_am_config.trigger_polarity = HAL_USART_AM_TRIG_RISING;
usart_am_config.packet_size_byte = 0U;
HAL_USART_AM_SetConfigPacketTrigger(&husart1, &usart_am_config);
// Enable packet trigger
HAL_USART_AM_EnablePacketTrigger(&husart1);
// Enable idle state
HAL_USART_AM_EnableIdle(&husart1);
// Optionally get configuration
HAL_USART_AM_GetConfigPacketTrigger(&husart1, &usart_am_config);
// Optionally clear configuration
HAL_USART_AM_DisablePacketTrigger(&husart1);
|
Slave Mode ¶
Configure NSS ¶
Function renamed in HAL2.
|
HAL1 |
HAL2 |
|---|---|
HAL_USARTEx_ConfigNSS(USART_HandleTypeDef *husart,
uint32_t NSSConfig);
|
HAL_USART_SetSlaveSelect(const hal_usart_handle_t *husart,
hal_usart_slave_select_config_t slave_select);
|
Enable/Disable Slave Mode ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_USARTEx_EnableSlaveMode(USART_HandleTypeDef *husart);
HAL_USARTEx_DisableSlaveMode(USART_HandleTypeDef *husart);
|
In HAL2, enabling slave mode is managed within HAL_USART_SetConfig()
when the user selects slave mode in the configuration structure.
|
Usage Sequence: Slave Mode ¶
|
HAL1 |
HAL2 |
|---|---|
USART_HandleTypeDef husart1;
husart1.Instance = USART1;
husart1.Init.BaudRate = 115200;
husart1.Init.ClockPrescaler = USART_PRESCALER_DIV1;
husart1.Init.WordLength = USART_WORDLENGTH_8B;
husart1.Init.StopBits = USART_STOPBITS_1;
husart1.Init.Parity = USART_PARITY_NONE;
husart1.Init.Mode = USART_MODE_TX_RX;
husart1.Init.CLKPolarity = USART_POLARITY_LOW;
husart1.Init.CLKPhase = USART_PHASE_1EDGE;
husart1.Init.CLKLastBit = USART_LASTBIT_DISABLE;
husart1.SlaveMode = USART_SLAVEMODE_ENABLE;
HAL_USART_Init(&husart1);
// Configure NSS as software
HAL_USARTEx_ConfigNSS(&husart1, USART_NSS_SOFT);
// Enable slave mode
HAL_USARTEx_EnableSlaveMode(&husart1);
|
hal_usart_handle_t hUSART1;
hal_usart_config_t usart_config;
usart_config.baud_rate = 115200U;
usart_config.clock_prescaler = HAL_USART_PRESCALER_DIV1;
usart_config.word_length = HAL_USART_WORD_LENGTH_7_BIT;
usart_config.stop_bits = HAL_USART_STOP_BIT_1;
usart_config.parity = HAL_USART_PARITY_NONE;
usart_config.direction = HAL_USART_DIRECTION_TX_RX;
usart_config.clock_polarity = HAL_USART_CLOCK_POLARITY_LOW;
usart_config.clock_phase = HAL_USART_CLOCK_PHASE_1_EDGE;
usart_config.clock_last_bit = HAL_USART_CLOCK_LAST_BIT_DISABLED;
usart_config.mode = HAL_USART_MODE_SLAVE;
HAL_USART_Init(&hUSART1, HAL_USART1);
HAL_USART_SetConfig(&hUSART1, &usart_config);
// Set slave select configuration
hal_usart_slave_select_config_t usart_slave_select_config;
usart_slave_select_config = HAL_USART_SLAVE_SELECT_PIN_USED;
HAL_USART_SetSlaveSelect(&hUSART1, usart_slave_select_config);
|